#!/bin/sh
####################################################
###注释exec_dir
###添加MODEL_DB
###删除脚本运行方法
#################################################
cd `dirname $0`
exec_dir app_table_data_source
source ../../../config.sh

HIVE_DB_NEW=app
HIVE_TABLE_NEW=app_table_data_source
TARGET_TABLE_NEW=basic_table_data_source

#创建表格
function create_table_new(){
        hadoop fs -rm -r ${BASE_HIVE_DIR}/${HIVE_DB_NEW}/${HIVE_TABLE_NEW} || :
        hive -e "DROP TABLE IF EXISTS ${HIVE_DB_NEW}.${HIVE_TABLE_NEW};"
        hive -e "CREATE TABLE IF NOT EXISTS ${HIVE_DB_NEW}.${HIVE_TABLE_NEW}(
                  table_name   STRING   COMMENT 'app表',
                  data_source STRING   COMMENT 'model数据源',
                  create_time STRING COMMENT '创建时间'
                 )COMMENT  'app来源信息表'
LOCATION '${BASE_HIVE_DIR}/${HIVE_DB_NEW}/${HIVE_TABLE_NEW}'"

        fn_log "创建表--app来源信息表:${HIVE_DB_NEW}.${HIVE_TABLE_NEW}"
}
#导入数据
function import_table_new() {


    hive -e "
        INSERT OVERWRITE table ${HIVE_DB_NEW}.${HIVE_TABLE_NEW}
        select
        distinct
       a.table_name,
       b.raw_data_source
       from
       (
        select
        a.table_name,
        tag_new as data_source,
        FROM_UNIXTIME(UNIX_TIMESTAMP()) AS create_time
        from
       (select '${HIVE_TABLE}' as table_name,'${MODEL_DB}' as data_source) a
        lateral view explode(split('${MODEL_DB}',',')) num as tag_new
        ) a
        left join
      model.model_table_data_source b on a.data_source=b.model_table_name
    "
    fn_log "导入表--app来源信息表: ${HIVE_DB_NEW}.${HIVE_TABLE_NEW}"
}
#导出数据
function export_table_new(){
    clear_mysql_data "delete from  ${TARGET_TABLE_NEW} where table_name='${HIVE_TABLE}';"

    sqoop export --connect ${MYSQL_URL} --username ${MYSQL_USERNAME} --password ${MYSQL_PASSWORD} \
    --table ${TARGET_TABLE_NEW} --export-dir  ${BASE_HIVE_DIR}/${HIVE_DB_NEW}/${HIVE_TABLE_NEW}  \
    --input-fields-terminated-by '\0001' --input-null-string '\\N' --input-null-non-string '\\N' \
    --null-string '\\N' --null-non-string '\\N'  \
    --columns "table_name,data_source,create_time"

    fn_log "导出数据--app层数据来源信息表: ${HIVE_DB_NEW}.${TARGET_TABLE_NEW}"

}
#数据清洗
function data_cleaning(){
    #创建app层数据来源信息表
    create_table_new
    #导入数据
    import_table_new
     #导出数据
    export_table_new

}



